<script lang="tsx">
import {Component, Prop, Vue,} from 'vue-property-decorator'

@Component<App>({ // 这上面的this是Vue类型
    watch: {
        postId(id: string) {
            // 在更改 id 时获取 post 数据。
            //this.fetchPost(id) // -> 'Vue' 类型不存在属性 'fetchPost'。
        }
    }
})
export default class App extends Vue {

    /**
     * @Prop相当于下面的
     * export default {
          props: {
            propA: {
              type: Number,
            },
            propB: {
              default: 'default value',
            },
            propC: {
              type: [String, Boolean],
            },
         },
    }
     */
    @Prop([Number])
    propA!: number // 不要赋值

    @Prop({default: "default value"})
    propB!: string

    @Prop([String, Boolean])
    propC!: string | boolean | undefined


    render() {
        console.log()
        return (
            <div>
                propA {this.propA} <br/>
                propB {this.propB} <br/>
                propC {this.propC} <br/>
            </div>
        )
    }
}
</script>

<style scoped>
#app {
    font-family: Avenir, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
}
</style>
